/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved. 
 */
package com.icinfo.cloud.provider.punish.execute.dto;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.icinfo.cloud.provider.punish.execute.model.ExecuteFilesRecord;
import com.icinfo.cloud.provider.punish.execute.model.ExecutePartyInfo;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

/**
 * 描述: 裁执分离主表 execute_main_info 对应的DTO类.<br>
 *
 * @author framework generator
 * @date 2022年08月24日
 */
@Data
public class ExecuteMainInfoInsertDto implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 执行id(法院带过来的唯一id)
     */
    @NotBlank(message = "案件唯一id不能为空")
    private String executeId;

    /**
     * 案件名称
     */
    @NotBlank(message = "案件名称不能为空")
    private String executeName;

    /**
     * 裁定书编号
     */
    @NotBlank(message = "裁定书编号不能为空")
    private String ruleNumber;

    /**
     * 裁定机构代码
     */
    @NotBlank(message = "裁定机构代码不能为空")
    private String ruleOrgCode;

    /**
     * 裁定机构统一信用代码
     */
    @NotBlank(message = "裁定机构统一信用代码不能为空")
    private String ruleUniscid;

    /**
     * 申请执行人名称
     */
    @NotBlank(message = "申请人名称不能为空")
    private String executionApplicant;

    /**
     * 申请执行人统一信用代码
     */
    @NotBlank(message = "申请人统一信用代码不能为空")
    private String executionUniscid;

    /**
     * 执行单位
     */
    @NotBlank(message = "执行单位名称不能为空")
    private String executeOrgName;

    /**
     * 执行单位编码
     */
    @NotBlank(message = "执行单位编码不能为空")
    private String executeOrgCode;

    /**
     * 行政处罚决定书编号
     */
    @NotBlank(message = "行政处罚决定书编号不能为空")
    private String decisionNumber;

    /**
     * 裁定结论
     */
    @NotBlank(message = "裁定结论不能为空")
    private String rulingConclusion;

    /**
     * 裁定法院
     */
    @NotBlank(message = "裁定法院不能为空")
    private String rulingCourt;

    /**
     * 法院代码
     */
    @NotBlank(message = "法院代码不能为空")
    private String courtCode;

    /**
     * 裁定日期
     */
    @NotNull(message = "裁定日期不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private LocalDate rulingDate;

    /**
     * 是否高风险  1-高风险
     */
    private String isHighRisk;

    /**
     * 高风险说明
     */
    private String highRisk;

    /**
     * 执行机关名称
     */
    private String executeOfficeName;

    /**
     * 执行机关统一信用代码
     */
    private String executeOfficeCode;

    /**
     * 被申请人信息
     */
    @NotEmpty(message = "被声请人信息不能为空")
    @Valid
    List<ExecutePartyInfo> partyInfos;

    /**
     * 附件列表
     */
    @NotEmpty(message = "附件列表信息不能为空")
    @Valid
    List<ExecuteFilesRecord> executeFilesRecords;

}